home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs10.d81
/
darkter4.arc
/
DT4.1650.PAL
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
3KB
|
150 lines
1000 REM * DARKTERM 4.0 (C) 1986 D.S.S.
1010 REM * 1650 MODEM MODULE SOURCE
1020 REM *
1030 OPEN2,8,1,"@0:DT4.MODEM 1650"
1040 SYS700
1050 .OPT O2
1060 ;
1070 CHKIN =$FFC6 ; KERNAL EQUATES
1080 CHKOUT =$FFC9
1090 CHRIN =$FFCF
1100 CHROUT =$FFD2
1110 CLRCHN =$FFCC
1120 CLOSE =$FFC3
1130 OPEN =$FFC0
1140 SETLFS =$FFBA
1150 SETNAM =$FFBD
1160 GETIN =$FFE4
1170 READST =$FFB7
1180 PLOT =$FFF0
1190 ;
1200 TEXT =18 ; WE'LL USE THIS FOR PTR
1210 ;
1220 DDELAY =878 ; SETUP EQUATES
1230 CDELAY =880
1240 HDELAY =881
1250 ;
1260 MILLI =$090C ; ACCESS ROUTINES
1270 TIWAIT =$090F
1280 ;
1290 *=$4600 ; START HERE
1300 JMP AUTODIAL
1310 JMP AANSWER
1320 JMP ONLINE
1330 OFFLINE LDA #0 ; ON-HOOK
1340 STA 56577
1350 LDA #32
1360 STA 56579
1370 RTS
1380 ONLINE LDA #32 ; OFF-HOOK
1390 STA 56577
1400 RTS
1410 AUTODIAL STX TEXT ; SAVE ADDRESS
1420 STY TEXT+1 ; OF DIAL TEXT STRING
1430 JSR OFFLINE ; HANG UP
1440 LDA HDELAY ; WAIT HDELAY SECONDS
1450 JSR WAIT
1460 JSR ONLINE ; OFF-HOOK
1470 LDA #2 ; WAIT A 2 SEC
1480 JSR WAIT
1490 LDY #0 ; INDEX TO START
1500 STY POINT
1510 AUTO1 LDY POINT ; GET INDEX
1520 LDA (TEXT),Y ; AND CHARACTER
1530 CMP #"0" ; CHECK FOR NUMBER
1540 BCC NEXT ; NO
1550 CMP #":"
1560 BCS NEXT ; NO
1570 SEC ; LESS 48 TO GET # OF
1580 SBC #48 ; PULSES
1590 BNE AUTO2
1600 LDA #10 ; 0, SO MUST MAKE 10 PLS
1610 AUTO2 STA PULSE ; SAVE IT
1620 LDA #0 ; PULSE COUNT
1630 STA COUNT
1640 AUTO3 JSR (null)OF ; PULSE OFF LINE
1650 LDX DDELAY ; WAIT DELAY
1660 LDY DDELAY+1
1670 JSR MILLI ; WAIT IT OUT
1680 JSR ONLINE ; PULSE ON LINE
1690 LDX DDELAY ; WAIT AGAIN
1700 LDY DDELAY+1
1710 JSR MILLI
1720 INC COUNT ; NEXT PULSE
1730 LDA COUNT
1740 CMP PULSE ; DONE YET
1750 BNE AUTO3 ; NO
1760 LDA #40 ; WAIT 2/3 SEC FOR NEXT #
1770 JSR TIWAIT
1780 JSR ABORT ; CHECK FOR STOP KEY
1790 NEXT INC POINT ; NEXT #
1800 LDA POINT
1810 CMP #18 ; DONE ALL 18 CHARS
1820 BNE AUTO1 ; NO, (null) BACK
1830 LDA CDELAY ; WAIT OUT THE DELAY
1840 JSR WAIT
1850 LDA 56577 ; HAVE A CARRIER
1860 AND #16
1870 BEQ AUTO4 ; YES, SIGNAL IT
1880 SEC ; NO, SET ZERO FLAG TRUE
1890 LDA #0 ; AND SET CARRY (NOT ABORT)
1900 RTS
1910 AUTO4 SEC ; HAVE CARRIER, SET
1920 LDA #1 ; ZERO FALSE
1930 RTS ; EXIT
1940 ABORT LDA 145 ; CHECK STOP KEY
1950 CMP #$7F
1960 BNE ABO1 ; NO, (null) BACK
1970 ABO0 PLA ; PULL RETURN ADDRESS
1980 PLA
1990 CLC ; CLEAR THE CARRY
2000 ABO1 RTS ; AND EXIT TO TERM
2010 WAIT TAX ; 1 SECOND COUNTER
2020 W0 LDA #0
2030 STA 160
2040 STA 161
2050 STA 162
2060 W1 LDA 145 ; CHECK FOR ABORT
2070 CMP #$7F ; DURING THE WAIT
2080 BEQ ABO0
2090 LDA 162
2100 CMP #60
2110 BCC W1
2120 DEX
2130 BMI W2
2140 BNE W0
2150 W2 RTS
2160 POINT .BYT 0
2170 COUNT .BYT 0
2180 PULSE .BYT 0
2190 AANSWER JSR OFFLINE ; ON-HOOK
2200 AN1 LDA 56577 ; CHECK FOR RING
2210 AND #8 ; DETECT
2220 BEQ AN2 ; WE HAVE R.D., (null) ON
2230 LDA 145 ; CHECK STOP KEY
2240 CMP #$7F
2250 BNE AN1 ; NONE, WAIT MORE
2260 AN0 JSR ONLINE ; OFF-HOOK
2270 CLC ; AND ABORT
2280 RTS
2290 AN2 LDA #0 ; SET UP FOR 30 SECOND
2300 STA 160 ; CARRIER DETECT WAIT
2310 STA 161
2320 STA 162
2330 JSR ONLINE ; OFF-HOOK
2340 AN3 LDA 145 ; CHECK STOP KEY
2350 CMP #$7F
2360 BEQ AN0
2370 LDA 56577 ; CHECK FOR DCD LINE
2380 AND #16
2390 BEQ AN4 ; (null)T CARRIER, SIGNAL
2400 LDA 160
2410 CMP #8 ; 30 SEC YET
2420 BCC AN3 ; NO, WAIT
2430 BCS AANSWER ; YES, RESET
2440 AN4 SEC ; SET CARRY FOR CARRIER
2450 RTS ; PRESENT, AND EXIT
2460 (null)OF LDA #0 ; PULSE ON-HOOK
2470 STA 56577
2480 RTS